﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace IPCPhotoEditor.Common
{
    /// <summary>
    /// 队列动作接口
    /// </summary>
    public interface IQueueAction
    {    
        /// <summary>
        /// 获取指令的时间戳，使用DataTime.Ticks获取
        /// </summary>
        long Timestamp
        {
            get;
        }

        /// <summary>
        /// 获取指令的超时设定, 单位毫秒
        /// </summary>
        int Timeout
        {
            get;
        }

        /// <summary>
        /// 在UI线程中执行的准备行为
        /// </summary>
        void OnPrepared();

        /// <summary>
        /// 在工作线程中执行的行为
        /// </summary>
        void Execute();

        /// <summary>
        /// 模拟执行。
        /// 通常情况下，该方法调用DeviceListener.FireOnReceivedFrom方法，
        /// 并传入合适的模拟数据
        /// </summary>
        void Simulate();

        /// <summary>
        /// 在UI线程中执行的行为
        /// </summary>
        void UpdateUI();
    }
       
}
